Zend VM
皆さんは PHP の処理、特に関数が、どのように処理系によって実行されているかをご存知でしょうか?
ZendVM における関数実行の仕組みの概要を知ることで、xhprof / tideways、phpspy や sample_prof といった計測ツールがどのような原理で動作するのかが分かり、それぞれどういった局面での利用に適しているか、という特性を知ることができます。 セッションの前半で ZendVM と関数の仕組みをざっくり、後半で各計測ツールとその仕組みの紹介をします。
PHPスクリプトの実行時には「コンパイル」と呼ばれる処理が行われ、スクリプトはZend VM(PHPの仮想的なCPU)の命令列に変換されてから実行されます。このZend VMは本物のCPUと似た命令も持っていますが、本物のCPUではあり得ない命令も持っています。その一つが例外処理に関わるものでしょう。